package com.atguigu.gmall.item.vo;

import com.atguigu.gmall.pms.entity.CategoryEntity;
import com.atguigu.gmall.pms.entity.SkuImagesEntity;
import com.atguigu.gmall.pms.vo.ItemGroupVo;
import com.atguigu.gmall.pms.vo.SaleAttrValueVo;
import com.atguigu.gmall.sms.vo.ItemSaleVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author Jia Fa
 * @create 2021-12-13 22:45
 */
@Data
public class ItemVo {
    // 一级 二级 三级 分类信息
    private List<CategoryEntity> categoryEntities;

    // 品牌信息
    private Long brandId;
    private String brandName;

    // spu信息
    private Long spuId;
    private String spuName;

    // sku相关信息
    private Long skuId;
    private String title;
    private String subTitle;//副标题
    private BigDecimal price;//商品价格
    private String defaultImage;//默认显示图片
    private Integer weight; //sku质量 单位 克

    // 图片列表信息
    private List<SkuImagesEntity> skuImages;  // 图片id 图片名字

    // 营销信息
    private List<ItemSaleVo> sales; //营销类型 营销

    // 库存信息有货
    private Boolean store = false;

    // 根据spuId 查询旗下sku 下的销售属性
    // [ {attrId:4,attrName:颜色,attrValue:'暗夜','苍雪','紫耀'},
    //  {attrId:5,attrName:内存,attrValue:'4G','8G','12G'},
    //   {attrId:6,attrName:存储,attrValue:'128','256','512'}, ]
    private List<SaleAttrValueVo> saleAttrs;

    // 当前sku 的销售属性 用于页面默认选中信息的高亮  当Key值不固定时
    // { 4:'暗夜',5:'8G',6:'128G' }
    private Map<Long,String> saleAttr;

    // 销售属性组合与skuId 的映射关系 用户选中某个配置组合跳转
    // {'苍青,8G,128G':101},{'苍青,12G,128G':102}
    private String skuJsons;

    // spu的描述信息
    private List<String> spuImages;

    // 规格参数
    private List<ItemGroupVo> groups;
}
	       /* 1.根据skuId查询sku信息  X
            2.根据三级分类的id查询一二三级分类 X
            3.根据brandId查询品牌  X
            4.根据spuId查询spu信息 X
            5.根据skuId查询sku的图片列表信息  X
            6.根据skuId查询sku的营销信息 X
            7.根据skuId查询sku的库存信息 X queryWareSkuBySid
            8.根据spuId查询spu下所有sku的销售属性  X  querySkuSaleAttrValueBySpuId
            9.根据skuId查询sku的销售属性    querySaleAttrValuesBySkuId
            10.根据spuId查询spu下所有销售属性与skuId的映射关系map  querySaleWithSkuIdMappingBySpuId
            11.根据spuId查询spu的描述信息 X
            12.根据分类id，skuId，spuId查询分组及组下的规格参数和值
            */